'use strict';

module.exports = app => {
  const { ENUM, INTEGER, STRING, DATE } = app.Sequelize;
  // 商品
  const Item = app.model.define('item', {
    // 标题
    title: { type: STRING, allowNull: false },
    // 价格
    price: { type: INTEGER, allowNull: false, defaultValue: 0 },
    // 原价
    original: { type: INTEGER, allowNull: false, defaultValue: 0 },
    // 商品类型  平台礼品  店铺商品
    itemType: {
      type: ENUM,
      values: [ 'present', 'commodities' ],
      defaultValue: 'commodities',
    },
    // 销售状态
    status: {
      type: ENUM,
      values: [ 'offshelf', 'selling' ],
      defaultValue: 'offshelf',
    },
    // 结束时间
    time: DATE,
    // 排序
    order: INTEGER,
  });

  Item.associate = function() {
    // 主图
    Item.belongsTo(app.model.File, { as: 'image' });
    // 商品配图
    Item.hasMany(app.model.ItemImage);
    // 店铺
    Item.belongsTo(app.model.Store);
    // 订单商品
    Item.hasOne(app.model.OrderItem);
  };

  return Item;
};
